package Year22_Month06.day06;

import java.util.ArrayList;
import java.util.List;

public class 在每个树行中找最大值_DFS {
    //要不就是遍历所有节点，然后遍历之后一个个的筛选
    //但是这里我觉得根据层次来决定更好
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        DFS(root,0,list);
        return list;
    }

    public void DFS(TreeNode node,int deepth,List<Integer> list){
        if(node == null){
            return;
        }
        //根据deepth来选择每一个层次的最大值
        if(deepth == list.size()){
            list.add(node.val);
        }else{
            if(list.get(deepth) < node.val){
                list.set(deepth,node.val);
            }
        }
        DFS(node.left,deepth+1,list);
        DFS(node.right,deepth+1,list);
    }
}
